#ifndef _Settings_H_
#define _Settings_H_

#include "mxml.h"

#include <string>

class Settings{
	public:
		Settings();
		~Settings();
		
		void Init();
		
		void Load();
		void Save();
		
		void ChangeSettings();
		
		//Mutators
		void SetSoundEnabled(bool b){_soundEnabled = b;}
		void SetMusicEnabled(bool b){_musicEnabled = b;}
		void SetAdvancedControls(bool b){_advancedControls = b;}
		void SetNetworkEnabled(bool b){_networkEnabled = b;}
		void SetUserName(char* str){_userName = std::string(str);}
		
		//Accessors
		bool IsSoundEnabled(){return _soundEnabled;}
		bool IsMusicEnabled(){return _musicEnabled;}
		bool IsAdvancedControls(){return _advancedControls;}
		bool IsNetworkEnabled(){return _networkEnabled;}
		
		void SetVersion(int v){_version = v;}
		int GetVersion(){return _version;}
		
		const char* GetUserName(){return _userName.c_str();}
		const char* GetPortiiIp(){return _portiiIp.c_str();}
		const char* GetPortiiHostName(){return _portiiHostName.c_str();}
		const char* GetPortiiNetworkPath(){return _portiiNetworkPath.c_str();}
		const char* GetNetworkLevelPath(){return _levelNetworkPath.c_str();}
		
	private:
		bool _soundEnabled;
		bool _musicEnabled;
		bool _advancedControls;
		bool _networkEnabled;
		
		std::string _userName;
		
		int _version;
		
		//Network Settings
		std::string _portiiIp;
		std::string _portiiHostName;
		std::string _portiiNetworkPath;
		std::string _levelNetworkPath;
};

#endif //_Settings_H_
		
